package com.cms.recursoshumanos.activity.menu_comida;

import java.lang.ref.WeakReference;

import com.example.frontendrecursoshumanos.R;
import com.cms.recursoshumanos.activity.main.MainRecursosHumanosActivity;
import com.cms.recursoshumanos.cache.MenuComidaCache;
import com.cms.recursoshumanos.handler.ImagenesHandler;
import com.cms.recursoshumanos.object.Comida;

import android.os.AsyncTask;
import android.os.Bundle;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class DetailComidaActivity extends MainRecursosHumanosActivity 
{
	private Comida laComida;
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_detail_menu_comida);
		
		Bundle bundle = getIntent().getExtras();
		int id_comida = Integer.parseInt(bundle.getString("id_comida"));
		laComida = MenuComidaCache.getInstance().getMenuComida().getListaComida().getComidaById(id_comida);
		
		setComponents();
	}

	private void setComponents()
	{
		LinearLayout layout_info_general = (LinearLayout) findViewById(R.id.llInformacionGeneral);
		RelativeLayout layout_comida_portait = (RelativeLayout) findViewById(R.id.rlComidaPortrait);
		
		TextView nombre_comida_portait = (TextView) layout_comida_portait.findViewById(R.id.tvPortaitNombreComida);
		ImageView foto_comida_portait = (ImageView) layout_comida_portait.findViewById(R.id.ivFotoComida);
		
		TextView nombre_tipo_comida_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueNombreTipoComida);
		TextView descripcion_comida_second_row = (TextView) layout_info_general.findViewById(R.id.tvValueDescripcionComida);
		
		//*--------------Seteo de Portait------------------------------------
		nombre_comida_portait.setText(laComida.getNombreComida());
		
		if (laComida.getFotoComida() != null)
		{
			foto_comida_portait.setImageBitmap(laComida.getFotoComida());
		}
		else
		{
			new DownloadImageTask(DetailComidaActivity.this).execute(laComida);
		}
		
		//*--------------Seteo de Detalle------------------------------------
		nombre_tipo_comida_second_row.setText(laComida.getTipoComida().getNombreTipoComida());
		LinearLayout llDescripcionComida = (LinearLayout) findViewById(R.id.trDescripcionComida);
		if (laComida.getDescripcionComida() != null)
		{
			llDescripcionComida.setVisibility(View.VISIBLE);
			descripcion_comida_second_row.setText(laComida.getDescripcionComida());
		}
		else
		{
			
			llDescripcionComida.setVisibility(View.GONE);
		}
		
		
	}
	
	
	private static class DownloadImageTask extends AsyncTask<Comida, Void, Bitmap> 
	{
		WeakReference<DetailComidaActivity> context;
		DetailComidaActivity activity;
		private Comida laComida;
	 
		public DownloadImageTask(DetailComidaActivity detailComidaActivity) 
		{	
			context = new WeakReference<DetailComidaActivity>(detailComidaActivity);
			this.activity = context.get();
		}
    	
		@Override
		protected Bitmap doInBackground(Comida... laComida) 
		{
			ImagenesHandler handler = new ImagenesHandler();
			this.laComida = laComida[0];
			return handler.GetImage(this.laComida.getUrlFotoComida());
		}
		
		@Override
		protected void onPostExecute(Bitmap poster) 
		{  
			RelativeLayout layout_comida_portrait = (RelativeLayout) activity.findViewById(R.id.rlComidaPortrait);
			ImageView itemImageView = (ImageView) layout_comida_portrait.findViewById(R.id.ivFotoComida);
	        
	        if (itemImageView != null)
	        {
        		if(poster != null)
	        	{
        			itemImageView.setImageBitmap(poster);
        			this.laComida.setFoto_Comida(poster);
    				MenuComidaCache.getInstance().getMenuComida().getListaComida().actualizarComida(laComida);
	        	}
	        }
		}
    }
	
}
